package mededelingen.model;

import java.util.ArrayList;
import java.util.Observable;
import java.util.Observer;

import javax.swing.table.AbstractTableModel;

import account.model.Account;
import account.model.SubTeam;

public class MededelingenListModel extends AbstractTableModel implements Observer{

	private static final long serialVersionUID = 1L;

	private String[] name = {"ID", "Begin", "Eind", "Titel", "Beschrijving"};
	private ArrayList<Mededelingen> m = new ArrayList<>();

	public MededelingenListModel(){
		Mededelingenlijst.getInstance().addObserver(this);
		m = Mededelingenlijst.getInstance().getMd();
	}

	@Override
	public int getColumnCount() {	
		return 5;
	}

	@Override
	public int getRowCount() {
		return m.size();
	}

	@Override
	public String getColumnName(int arg0) {
		return name[arg0];
	}

	@Override
	public Object getValueAt(int arg0, int arg1) {
		Mededelingen med = m.get(arg0);
		if(arg1 == 0){
			return med.getMededeling_id();
		}
		else if(arg1 == 1){
			return med.getBeginDatum();
		}
		else if(arg1 == 2){
			return med.getEindDatum();
		}
		else if(arg1 == 3){
			return med.getNaam();
		}
		else if(arg1 == 4){
			return med.getBeschrijving();
		}

		return null;
	}
	
	//voeg mededeling toe aan tabel
	public void addRow(Mededelingen med) {
		m.add(med);
		fireTableRowsInserted(m.size() - 1, m.size() - 1);
	}

	//werk de tabel bij
	public void update(Observable arg0, Object arg1) {
		fireTableDataChanged();
	}

	//verwijder mededeling uit tabel
	public int deleteMededeling(int selectedRow) {
		m.remove(selectedRow);
		fireTableDataChanged();
		return selectedRow;

	}

}